<?php
//1.用require导入一个类文件
//require('test.php');//导入test.php
//include('test.php');//导入test.php


//2.__autoload()当我们引入一个不存在的类时，自动调用它导入该类文件
/**
function __autoload($className)
{
	$path = $className.'.php';//test.php
	if (file_exists($path)) {
		require_once($path);
	} else {
		echo $path."不存在，请检查……";
	}
}
**/


//3.自定义导入函数，用spl_autoload_register()将自定义的类导入函数添加到函数栈中（目前常用这种）
//视频 http://www.php.cn/code/15470.html
/*
function loader($className)
{
	$path = $className.'.php';//test.php
	if (file_exists($path)) {
		require_once($path);
	} else {
		echo $path."不存在，请检查……";
	}
}*/
//用类的方式
class LoaderClass
{
	static function loader($className)//用静态方法就不用实列化
	{
	$path = $className.'.php';//test.php
	if (file_exists($path)) {
		require_once($path);
	} else {
		echo $path."不存在，请检查……";
	}
	}
}
//spl_autoload_register('loader');
//spl_autoload_register(['LoaderClass','loader']);//静态方法直接就类名加方法名，数组方法

spl_autoload_register('LoaderClass::loader');//静态方法直接就类名::方法名。
//spl_autoload_register([(new LoaderClass),'loader']);//不是静态方法时
echo (new Test('www.php.net'))->name;